package com.xjh.basestudy.designmode.structureMode.structureMode2_Composite;

/**
 * @Author XuJianHua
 * @Date 2022/9/25 0:03
 * @Description 除了第8行的添加子节点方法add(Node child)，文件类与文件夹类的代码大同小异。如之前提到的，文件属于“叶”节点，不能再将这种结构延续下去，
 * 所以我们在第9行输出一个错误消息，告知用户“不能添加子节点”。
 * 其实更好的方式是以抛出异常的形式来确保此处逻辑的正确性，外部如果捕获到该异常则可以做出相应的处理，读者可以自行实践。一切就绪，用户就可以构建目录树了。
 */
public class File extends Node {

    public File(String name) {
        super(name);
    }

    @Override
    protected void add(Node child) {
        System.out.println("不能添加子节点。");
    }

    // 作为末端节点的文件类只需要输出space个空格再加上自己的名称即可，这里与父类的展示方法tree(int space)应该保持一致，
    // 所以我们在第14行直接调用父类的展示方法。其实文件类可以不做任何修改，
    // 而是直接继承父类的展示方法，此处是为了让读者更清晰直观地看到这种继承关系，同时方便后续做出其他修改。
    @Override
    public void tree(int space) {
        super.tree(space);
    }
}
